home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Floppyshop 2
/
Floppyshop - 2.zip
/
Floppyshop - 2.iso
/
art&graf.ix
/
art-4542
/
rsflip11
/
rsflip.doc
next >
Wrap
Text File
|
1989-05-08
|
15KB
|
357 lines
-------------------------------------------------------------------------------
RSFLIP V1.1
Copyright (c) 1989, By Bob Silliker
All Rights Reserved
THIS SOFTWARE IS FREEWARE
-------------------------------------------------------------------------------
INTRODUCTION
Rsflip is a program that provides simple flip book animation. The intention
of the program is to give users who do not have mush drawing skill access to
animation. The flip book area is a 40 X 40 grid of blocks. Each block is
called a 'pixel' and the entire grid of blocks (pixels) is called a 'frame'.
The user draws simple scenes on a number of these frames and then flips
between them under program control.
There are menu options for clearing, filling, inverting, rotating, shifting,
moving and copying all the blocks in a frame or only a user defined portion
of the frame. It is also possible to make these menu entries affect a range
of frames. Frames can be added, duplicated, copied/cut to buffer, pasted
from buffers, and deleted.
There are two drawing primitives; Draw and Box. These too can be made to
affect a range of frames.
MEMORY REQUIREMENTS
Each frame that is defined takes up 3,202 bytes of memory in either resolution.
This means that on a 520ST with stock memory the user has access to about 40
frames, on a 1040ST, MEGA2 and MEGA4 about 200, 520 and 1180 frames
respectively.
When the flip book is saved in a file, the program compresses the information
stored in memory by a factor of 16 reducing the amount of file space per
frame to 202 bytes. This makes it possible to store the contents of about
1800 frames on a single sided disk.
AREA BOX OR PIXEL RANGES
Pixel ranges are used to affect only a certain area of a frame with an
operation. I have termed this the 'area box'. This area box can be enabled
or disable at almost any time using the left mouse button. When you press
the left mouse button for the first time the area box is set to include all
of the pixels. To create a new area box point the mouse at the upper left
corner of the area you want to mark and then press and hold the left mouse
button. A rubber box will appear and will be, by default, the size of one
pixel. Move the mouse until the rubber box falls within the pixel area you
are interested in and release the mouse button. You can now use the menu
entries enabled to execute an operation on the area.
When the area box is enabled (showing) you will not be able to draw or creat
a box. These are temporarily disabled in favour of the area box. To get
back to draw or box press the left mouse button and the area box will be
disabled (disappear).
When you are using the menu entries Copy, Xray Copy, Move or Xray move (these
are under the Prim menu) you can use the existing area box as the source
area or you can disable the area box and create a new source box using the
mouse pointer and left mouse button. If you have the area box enabled you
should not try to creat a new area by pointing inside the box and pressing
the left mouse button. All this will make the program do is think you want
to copy/move the existing area box (something I have done a lot by mistake).
FRAME RANGES
The program has a menu entry under the Range menu called Enabled. When this
menu entry is checked (with a check mark) the program will draw a new dialog
over the small dialog on the left that displays the current frame number
(the Frame Number Dialog). The new dialog contains two values (labelled START
and END) and a mess of arrows. These are the range start and range end frame
values (inclusive) that will be affected by the next frame modifying operation.
Range is only enabled when the range dialog is shown on the screen. To
disable range just uncheck the Enable menu entry in the Range menu.
FRAME DELAY
Each frame can, optionally, have a delay associated with it. This delay is
the period of time that the frame will be displayed before displaying the
next frame. The delay unit is 1/Frames/Sec set by the user in the Play menu.
If the delay value for a frame is 0 then the frame will not be displayed.
E.G
If your frame display rate is 10 frames per second and a frame has a delay
value of 5 then the delay period will be 5 * 1/10 or .5 seconds.
============
MENU ENTRIES
============
____________________________________________________________________________
File Play Frame Ops Prim Range Misc
----------------------------------------------------------------------------
|New | |Play | |Add | |Clear | |Draw | |Enable | |Undo |
|Open | |----------| |Duplicate| |Fill | |Box | |----------| |-----|
|Read | |Repeat | |---------| |Invert| |---------| |Mark Start| |Color|
|-------| |Reverse | |Copy | |------| |Copy | |Mark End | -----
|Save | |----------| |Cut | |Rotate| |Xray Copy| ----------
|Save As| |Frames/Sec| |Paste | |H-Flip| |Move |
|Close | | 1 2 3 | |---------| |V-Flip| |Xray Move|
|-------| | 4 5 6 | |Delete | |------| ---------
|Quit | | 7 8 9 | |---------| |Shift |
------- |10 15 20 | |Delay | ------
---------- ---------
File Menu
---------
The file menu contains menu entries that control the creating, opening, saving
and closing of flip books, and program termination.
New - Start a new flip book. This is used to create a new flip
book. The program will start the flip book with one
blank frame. The user must Add or Duplicate to get more
frames.
Open - Open an existing flip book. Only one flip book can be
open at any one time.
Read - Read another flip book file onto the end of the flip book
already in memory. Only available after a New or Open.
This does not change the flip book file name. So when
saving, the orignal flip book file name will be used (or
the one used in Save As).
Save - Store the flip book into the existing flip book file. This
is available only if you have opened a flip book or if you
have created a new flip book and have saved it using the
Save As menu option.
Save As - Save the flip book into a new flip book file. This is used
when you want to create a new flip book or rename an
existing one.
Close - Close the flip book. If you have made changes to the flip
book and not save them you will be prompted to SAVE then
CLOSE, CLOSE or CANCEL.
Quit - Terminate the rsflip program and return to the shell or
desktop that started the execution of rsflip. If you have
a flip book open and you have made changes and not saved
them you will be prompted tp SAVE then QUIT, QUIT or CANCEL.
Play Menu
---------
The Play menu contains menu entries that control flipping through the book.
The user has control over the direction and speed of flipping and whether
flipping is done once or endlessly.
Play - Start flipping through the frames. If range is enabled
the starting frame will be the range start otherwise
the program will start with frame 1. If range is enabled
then the ending frame will be range end otherwise the
program will flip through all the frames. To STOP flipping
press and hold down the RIGHT MOUSE BUTTON until the mouse
pointer appears.
Repeat - Flip through the frames endlessly starting back a 1 or
range start when the program gets to the end of the
frames or range end.
Reverse - Flip through the frames backwards.
1, 2, 3, 4,
5, 7, 8, 9,
10, 15, 20 - Set the frame speed in frames per second. The disabled
number is the current frame speed.
Frame Menu
----------
The frame menu provides for adding and duplicating frames, access to the frame
buffer for moving pixels from/to other frames.
Add - Add a frame after the frame that you are currently viewing.
The new frame will be clear and will become the current
frame. If you run out of memory you will get an error
dialog and nothing will have changed.
Duplicate - Add a frame after the frame that you are currently viewing.
The new frame will have the same contents as the frame you
were viewing and will become the current frame. If you run
out of memory you will get an error dialog and nothing will
have changed.
Copy - Copy the frame into the buffer frame. If you have limited
the area of the frame with the area box then only the
pixels inside the area box will be copyied into the frame
buffer.
Cut - Cut the frame into the buffer frame. That is copy the
current from into the buffer then delete the current
frame. All frames after the current frame will be moved
down one frame. If you have limited the area of the frame
with the area box then only the pixels in the area box
will be copied into the buffer. The frame will still be
deleted. You cannot cut the last frame!
Paste - Copy from the buffer into the current frame. If the user
has limited the area using the area box then only the
pixels in the box will be copied into the current frame.
This is menu entry is also affected by range. If the range
is enabled then the pixels will be copied into all of the
frames from range start to range end inclusive.
Delete - Delete the current frame. This menu entry is affected
by range. If range is enabled then all the frames from
the range start to range end will be deleted inclusive.
You cannot delete the last frame!
Delay - Display the frame delay dialog. When this menu entry is
checked a dialog will be drawn that will display the
delay time for the current frame or, if frame range is
enabled, the range start frame. The user can change the
delay period for a single frame or a range of frames.
While the delay dialog is displayed the user can use
any of the menu entries, change the current frame or
the range of frames. Undo is not available for this
menu option.
Ops Menu
--------
The Ops menu contains menu entries that operate on an entire frame or on a
user selected area of pixels. All of these menu entries are affected by the
area box (which limits the pixels involved in an operation) and range. If
the area box is enabled then only the pixels in the box will be affected.
If range is enabled then the operation will apply to all the frames from range
start to range end inclusive. If range is not enabled then only the current
frame is affected.
Clear - Clear the frame or area.
Fill - Fill the frame or area.
Invert - Invert the frame or area. A pixel that is white will now
be black and a pixel that is black will now be white.
Rotate - Turn the frame or area by 90 degrees. If the area box is
enabled and the area is not square then the area box is
modified to be square. The upper left corner will not
change when the area box is adjusted.
H-Flip - Flip the frame or area pixels horizontally. Pixels on the
left are now on the right and pixels on the left are now on
the right.
V-Flip - Flip the frame or area pixels vertically. Pixels on the
top are now on the bottom and pixels on the bottom are now
on the top.
Shift - Displays the shift dialog which will allow shifting the
frame or area up, down, left, or right. The dialog has
three shift count buttons [ 1 ], [ 5 ] and [ 10 ]. These
control the number of shifts shifted when one of the shift
arrows is selected.
Prim Menu
---------
The Prim menu contains menu options for free hand drawing, creating boxes,
and copying moving areas of a frame. All of these menu entries are affected
by range. Which will cause changes to all the frames from range start to
range end inclusive.
Draw - Draw on the screen using the mouse. Press and hold the
left mouse and free hand draw. The pixel that is under
the mouse pointer at the time the left mouse button is
pushed determines the color (black/white) that will be
used to draw with. The color is the opposite to the pixel
under the mouse pointer. If you enable the area box then
draw will be disbled in favour of creating a new are box.
Box - Draw a box in the screen. Locate the mouse in the upper
left corner (or lower right), press and hold the left mouse
button and move the mouse until the box is the desired
shape and size. Don't confuse this box with the area box.
If you enable the area box then box will be disabled in
favour of creating a new area box.
Copy - Copy an area replacing the destination area.
Xray Copy - Copy an area merging the source and destination areas.
Move - Move an area replacing the destination area.
Xray Move - Move an area merging the source and destination areas.
For these menu entries you can use the area box as the
source area or you can make a new area box. When the
source area is ready point some where inside the box and
press and hold the left mouse button. The area you have
selected will now follow the mouse pointer around the
frame. Position the area where you want it and release
the left mouse button. Be careful not to let the mouse
wander too far out of the total frame area as the program
will release the left mouse button (effectively) and
the area will probably not be left where you wanted it.
Range Menu
----------
The Range menu enables menu entries to affect more that one frame. You
cannot UNDO any operation that is executed with range enabled.
Enable - Displays the Frame Range Dialog and enables menu entries
to affect a range of frames. There is NO UNDO from an
operation affected by RANGE.
Mark Start - Set the range start value to the current frame. This does
not enable range. Only Enable above does.
Mark End - Set the range end value to the current frame. This does
not enable range. Only Enable above does.
Misc Menu
---------
Catch all menu for things that don't belong in other menus. At the moment
there are only Undo and Color.
Undo - Undo the last single frame operation. Undo is not available
for operations the involve a range of frames. The last
undo will be disabled after a frame range operation.
Color - Displays a dialog that allows the user to set the screen
colors.
========
WARNINGS
========
- UNDO DOES NOT WORK WITH ANY OPERATION EXECUTED WITH RANGE ENABLED.
===================
FUTURE ENHANCEMENTS
===================
Here are a few changes that I would like to see made to RSFLIP when there
is more time and energy available:
- reduce the amount of memory space required to store a frame.
- have UNDO work with ranges of frames for any command.
=========
BUG FIXES
=========
If you find a bug or would like to suggest an improvment to RSFLIP please
e-mail me at:
bobs@moliman.molienergy.bc.ca
or
...!uunet!van-bc!resrch!moliman!bobs